home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 13 / FreelogHS13.iso / P To P / Emule24b_Morph_Mod_V4b-binary / Webserver / textarea.js < prev    next >
Text File  |  2002-11-15  |  5KB  |  163 lines

  1. var oTextarea=new Array();
  2. oTextarea.borderSize=1;
  3.  
  4. function createTextarea(x,y,w,h)
  5. {
  6.   var num=oTextarea.length;
  7.   num++;
  8.  
  9.   var str="";
  10.   str+='<div id="divTAWin'+num+'" class="clTAWin">'
  11.         +'<div id="divTextarea'+num+'" class="clTextarea">'
  12.          +'<div id="divTextareaText'+num+'" class="clTextareaText"></div>'
  13.         +'</div>'
  14.         +'<div id="divTextareaUp'+num+'" class="clTextareaUp">'
  15.          +'<a href="#" onclick="return false" onmousedown="oTextarea['+num+'].move(0,5);" onmouseup="oTextarea['+num+'].move(0,0);" onmouseout="oTextarea['+num+'].move(0,0);"><img src="images/arrow_up.gif" width="15" height="15" alt="" border="0"/></a>'
  16.         +'</div>'
  17.         +'<div id="divTextareaDown'+num+'" class="clTextareaDown">'
  18.          +'<a href="#" onclick="return false" onmousedown="oTextarea['+num+'].move(0,-5);" onmouseup="oTextarea['+num+'].move(0,0);" onmouseout="oTextarea['+num+'].move(0,0);"><img src="images/arrow_down.gif" width="15" height="15" alt="" border="0"/></a>'
  19.         +'</div>'
  20.         +'<div id="divTextareaAuto'+num+'" class="clTextareaAuto">'
  21.          +'<a onclick="oTextarea['+num+'].toggleAuto();" style="font-size:10px;">Auto</a>'
  22.         +'</div>'
  23.        +'</div>';
  24.   document.write(str);
  25.   var bs=oTextarea.borderSize;
  26.   oTextarea[num]=new lib_obj('divTAWin'+num,"","","",num);
  27.   oTextarea[num].width=w;
  28.   oTextarea[num].height=h;
  29.   oTextarea[num].moveIt(x,y);
  30.   oTextarea[num].clipTo(0,w,h,0);
  31.   oTextarea[num].oTextarea=new lib_obj('divTextarea'+num,'divTAWin'+num);
  32.   oTextarea[num].oTextarea.moveIt(0,0);
  33.   oTextarea[num].oTextarea.clipTo(0,w-15-bs,h-bs,0,1);
  34.   oTextarea[num].oTextareaText=new lib_obj('divTextareaText'+num,'divTextarea'+num,'divTAWin'+num);
  35.   oTextarea[num].oTextareaText.moveIt(bs,bs);
  36.   oTextarea[num].oTextareaText.clipTo(0,w,h,0,1);
  37.   oTextarea[num].oUp=new lib_obj('divTextareaUp'+num,'divTAWin'+num);
  38.   oTextarea[num].oDown=new lib_obj('divTextareaDown'+num,'divTAWin'+num);
  39.   oTextarea[num].oAuto=new lib_obj('divTextareaAuto'+num,'divTAWin'+num);
  40.   oTextarea[num].oUp.moveIt(w-bs-15,1);
  41.   oTextarea[num].oDown.moveIt(w-bs-15,h-bs-15);
  42.   oTextarea[num].oAuto.moveIt(w-bs-45,1);
  43.   oTextarea[num].xPos = x;
  44.   oTextarea[num].yPos = y;
  45.   oTextarea[num].no = num;
  46.   oTextarea[num].linecount = 0;
  47.   oTextarea[num].sctim = 0;
  48.   oTextarea[num].content = "";
  49.   oTextarea[num].auto = true;
  50.   
  51.   oTextarea[num].setContent=setTextAreaContent;
  52.   oTextarea[num].appendContent=appendTextAreaContent;
  53.   oTextarea[num].move=textareamove;
  54.   oTextarea[num].moveToEnd=textareamovetoend;
  55.   oTextarea[num].resize=resizeTextarea;
  56.   oTextarea[num].toggleAuto=toggleTextareaAuto;
  57.  
  58.   oTextarea[num].setContent('');
  59.   oTextarea[num].showIt();
  60.   return oTextarea[num];
  61. }
  62.  
  63. function toggleTextareaAuto()
  64. {
  65.   if(this.auto==true)
  66.   {
  67.     this.auto=false;
  68.     this.oAuto.css.backgroundColor="red";
  69.   }
  70.   else
  71.   {
  72.     this.auto=true;
  73.     this.oAuto.css.backgroundColor="green";
  74.   }
  75. }
  76.  
  77. function setTextAreaContent(content)
  78. {
  79.   this.content=content;
  80.   setContent(content, "divTextareaText"+this.no);
  81.   var linecount=1;
  82.   var temp=0;
  83.   lowcontent=content.toLowerCase();
  84.   while(temp!=-1)
  85.   {
  86.     temp=lowcontent.indexOf("<br>");
  87.     if(temp!=-1)
  88.     {
  89.       linecount++;
  90.       lowcontent=lowcontent.substr(temp+4);
  91.     }
  92.   }
  93.   this.linecount=linecount;
  94.   var height=linecount*13-2*oTextarea.borderSize;
  95.   if(height<this.height)
  96.     height=this.height-2*oTextarea.borderSize-1;
  97.   this.oTextareaText.clipTo(0,this.width-2*oTextarea.borderSize-16,height,0,1);
  98. }
  99.  
  100. function appendTextAreaContent(content)
  101. {
  102.   this.content+=content;
  103.   setContent(this.content, "divTextareaText"+this.no);
  104.   var linecount=1;
  105.   var temp=0;
  106.   lowcontent=this.content.toLowerCase();
  107.   while(temp!=-1)
  108.   {
  109.     temp=lowcontent.indexOf("<br>");
  110.     if(temp!=-1)
  111.     {
  112.       linecount++;
  113.       lowcontent=lowcontent.substr(temp+4);
  114.     }
  115.   }
  116.   this.linecount=linecount;
  117.   var height=linecount*13-2*oTextarea.borderSize;
  118.   if(height<this.height)
  119.     height=this.height-2*oTextarea.borderSize-1;
  120.   this.oTextareaText.clipTo(0,this.width-2*oTextarea.borderSize-16,height,0,1);
  121.   this.moveToEnd();
  122. }
  123.  
  124. function textareamove(x,y)
  125. {
  126.   clearTimeout(this.sctim);
  127.   if(x!=0 || y!=0)
  128.   {
  129.     if(this.oTextareaText.y>=0 && y>0)
  130.       y=0;
  131.     var height=this.linecount*13-2*oTextarea.borderSize;
  132.     if(this.oTextareaText.h+this.oTextareaText.y-2*oTextarea.borderSize<=this.height && y<0)
  133.       y=0;
  134.     this.oTextareaText.moveBy(x,y);
  135.     this.sctim=setTimeout("oTextarea["+this.no+"].move("+x+","+y+");",10);
  136.   }
  137. }
  138.  
  139. function textareamovetoend()
  140. {
  141.   if(this.auto==true)
  142.   {
  143.     var h=this.linecount*13-this.height+1;
  144.     if(h<=0)
  145.       h=0;
  146.     this.oTextareaText.moveIt(1,1-h);
  147.   }
  148. }
  149.  
  150. function resizeTextarea(w,h)
  151. {
  152.   this.width=w;
  153.   this.height=h;
  154.   var bs=oTextarea.borderSize;
  155.   this.clipTo(0,w,h,0);
  156.   this.oTextarea.clipTo(0,w-15-bs,h-bs,0,1);
  157.   this.oTextareaText.clipTo(0,w,h,0,1);
  158.   this.oUp.moveIt(w-bs-15,1);
  159.   this.oDown.moveIt(w-bs-15,h-bs-15);
  160.   this.oAuto.moveIt(w-bs-45,1);
  161.   this.setContent(this.content);
  162. }
  163.